﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLogic.Security;
using System.Configuration;
using Otgruzka.ServicesClients;
using DataTier;
using DataTier.Entities;
using System.ServiceModel;

namespace Otgruzka.Controls.ExpendBill
{
    public partial class ConsolidatedAccountList : System.Web.UI.UserControl
    {
        /// <summary>
        /// Свойство, указывающее на наличие фильтра
        /// </summary>
        protected bool IsFiltered
        {
            get { return Session["SearchParameters"] != null && Session["SearchParameters"] is SearchParameters; }
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            SearchParameters searchParameters = null;

            if (IsPostBack)
            {
                // Заполняется объект SearchParameters
                searchParameters = GetSearchParameters();

                // SearchParameters добавляется в сессию
                Session["SearchParameters"] = searchParameters;
            }

            BindPaging(searchParameters);
            if (!IsPostBack)
                Bind();
            FillFiltersFields();
        }

        private void Bind()
        {
            var ConsolidatedAccounts = GetConsolidatedAccounts();

            if (ConsolidatedAccounts != null)
                this.ConsolidatedAccounts.DataSource = ConsolidatedAccounts.ToList();

            this.ConsolidatedAccounts.DataBind();
        }

        private void BindPaging(SearchParameters searchParameters)
        {
            int? numRows = new ExpendBillsClient().GetConsolidatedAccountListCount2(UserPrincipal.Current.UserId, searchParameters);
            this.PagingTop.CountRows = numRows;
            this.PagingTop.NumPageSessionName = "accsNumPage";
            this.PagingTop.PageNumberChange += new Paging.PageNumberChangeHandler(PagingTop_PageNumberChange);

            this.PagingBottom.CountRows = numRows;
            this.PagingBottom.NumPageSessionName = "accsNumPage";
            this.PagingBottom.PageNumberChange += new Paging.PageNumberChangeHandler(PagingBottom_PageNumberChange);
        }

        void PagingBottom_PageNumberChange(object sender, PageNumberChangeEventArgs data)
        {
            this.PagingTop.Bind();
            Bind();
            FillFiltersFields(); // Заполняются поля ввода для фильтров из Session
        }

        void PagingTop_PageNumberChange(object sender, PageNumberChangeEventArgs data)
        {
            this.PagingBottom.Bind();
            Bind();
            FillFiltersFields(); // Заполняются поля ввода для фильтров из Session
        }


        protected void AccountList_Filtr_click(object sender, EventArgs e)
        {
            //// Заполняются поля ввода для фильтров из Session
            //FillFiltersFields();
            //SearchParameters searchParameters = null;
            //searchParameters = GetSearchParameters();

            //var consolidatedAccounts = GetConsolidatedAccounts();
            //if (consolidatedAccounts != null && consolidatedAccounts.Count > 0)
            //{
            //    //this.Orders.DataSource = orders.Where(o => o.Id == Convert.ToInt32(this.search_id.Text));

            //    // Номер счета
            //    if (searchParameters.AccountNumber != null)
            //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => !string.IsNullOrEmpty(c.ConsolidatedAccount.Number) && c.ConsolidatedAccount.Number.ToLower().Contains(searchParameters.AccountNumber.ToLower()));

            //    // Дата создания
            //    if (searchParameters.AccountCreatedDate != null)
            //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => c.ConsolidatedAccount.CreatedDate.Date.ToShortDateString().Contains(searchParameters.AccountCreatedDate.Value.Date.ToShortDateString()));

            //    // Начало периода
            //    if (searchParameters.AccountPeriodDateStart != null)
            //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => c.ConsolidatedAccount.PeriodDateStart.Date.ToShortDateString().Contains(searchParameters.AccountPeriodDateStart.Value.Date.ToShortDateString()));

            //    // Окончание периода
            //    if (searchParameters.AccountPeriodDateEnd != null)
            //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => c.ConsolidatedAccount.PeriodDateEnd.Date.ToShortDateString().Contains(searchParameters.AccountPeriodDateEnd.Value.Date.ToShortDateString()));

            //    // Название Юр.лица
            //    if (searchParameters.JuridicalPerson != null)
            //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => c.JuridicalPerson.Name.ToLower().Contains(searchParameters.JuridicalPerson.ToLower()));


            //    this.ConsolidatedAccounts.DataBind();

            //}
            this.PagingTop.CurrentPageNumber = 1;
            this.PagingBottom.CurrentPageNumber = 1;

            BindAndFillFiltersPaging();
        }


        /// <summary>
        /// Заполняются поля ввода для фильтров из Session
        /// </summary>
        private void FillFiltersFields()
        {
            var searchParameters = Session["SearchParameters"] as SearchParameters;
            if (searchParameters != null)
            {
                #region Заполняются поля ввода фильтров

                var HNumber = this.ConsolidatedAccounts.HeaderRow.FindControl("HNumber") as TextBox;
                var HCreatedDate = this.ConsolidatedAccounts.HeaderRow.FindControl("HCreatedDate") as jQuery.JQueryDatepicker;
                var HPeriodDateStart = this.ConsolidatedAccounts.HeaderRow.FindControl("HPeriodDateStart") as jQuery.JQueryDatepicker;
                var HPeriodDateEnd = this.ConsolidatedAccounts.HeaderRow.FindControl("HPeriodDateEnd") as jQuery.JQueryDatepicker;
                var HJuridicalPersonName = this.ConsolidatedAccounts.HeaderRow.FindControl("HJuridicalPersonName") as TextBox;

                if (HNumber != null)
                    HNumber.Text = searchParameters.AccountNumber;

                if (HCreatedDate != null)
                    HCreatedDate.SelectedDate = searchParameters.AccountCreatedDate;

                if (HPeriodDateStart != null)
                    HPeriodDateStart.SelectedDate = searchParameters.AccountPeriodDateStart;

                if (HPeriodDateEnd != null)
                    HPeriodDateEnd.SelectedDate = searchParameters.AccountPeriodDateEnd;

                if (HJuridicalPersonName != null)
                    HJuridicalPersonName.Text = searchParameters.JuridicalPerson;

                #endregion Заполняются поля ввода фильтров
            }
        }


        /// <summary>
        /// Возвращается объект SearchParameters формирующийся из полей ввода фильтров
        /// </summary>
        /// <returns></returns>
        private SearchParameters GetSearchParameters()
        {
            // Создаем экземпляр SearchParameters
            SearchParameters searchParameters = new SearchParameters();

            #region Заполняется объект SearchParameters

            var HNumber = this.ConsolidatedAccounts.HeaderRow.FindControl("HNumber") as TextBox;
            var HCreatedDate = this.ConsolidatedAccounts.HeaderRow.FindControl("HCreatedDate") as jQuery.JQueryDatepicker;
            var HPeriodDateStart = this.ConsolidatedAccounts.HeaderRow.FindControl("HPeriodDateStart") as jQuery.JQueryDatepicker;
            var HPeriodDateEnd = this.ConsolidatedAccounts.HeaderRow.FindControl("HPeriodDateEnd") as jQuery.JQueryDatepicker;
            var HJuridicalPersonName = this.ConsolidatedAccounts.HeaderRow.FindControl("HJuridicalPersonName") as TextBox;

            if (HNumber != null && !string.IsNullOrEmpty(HNumber.Text))
                searchParameters.AccountNumber = HNumber.Text;

            if (HCreatedDate != null && HCreatedDate.SelectedDate.HasValue)
                searchParameters.AccountCreatedDate = HCreatedDate.SelectedDate.Value;

            if (HPeriodDateStart != null && HPeriodDateStart.SelectedDate.HasValue)
                searchParameters.AccountPeriodDateStart = HPeriodDateStart.SelectedDate.Value;

            if (HPeriodDateEnd != null && HPeriodDateEnd.SelectedDate.HasValue)
                searchParameters.AccountPeriodDateEnd = HPeriodDateEnd.SelectedDate.Value;

            if (HJuridicalPersonName != null && !string.IsNullOrEmpty(HJuridicalPersonName.Text))
                searchParameters.JuridicalPerson = HJuridicalPersonName.Text;

            // Если все поля с фильтрами пустые, то объект с параметрами приравнивается NULL
            if ((HNumber == null || string.IsNullOrEmpty(HNumber.Text)) &&
                (HCreatedDate == null || !HCreatedDate.SelectedDate.HasValue) &&
                (HPeriodDateStart == null || !HPeriodDateStart.SelectedDate.HasValue) &&
                (HPeriodDateEnd == null || !HPeriodDateEnd.SelectedDate.HasValue) &&
                (HJuridicalPersonName == null || string.IsNullOrEmpty(HJuridicalPersonName.Text))
            )
            {
                searchParameters = null;// searchParameters = (Session["SearchParameters"] != null) ? Session["SearchParameters"] as SearchParameters : null;
            }

            #endregion Заполняется объект SearchParameters
            { }
            return searchParameters;
        }


        protected void AccountList_Clear_Filtr(object sender, EventArgs e)
        {
            Session["SearchParameters"] = null;
            this.PagingTop.CurrentPageNumber = 1;
            this.PagingBottom.CurrentPageNumber = 1;
            Response.Redirect("~/WebForms/ConsolidatedAccountList.aspx");
        }


        private List<CAEntity2> GetConsolidatedAccounts()
        {
            var client = new ExpendBillsClient();
            try
            {
                int numPage = this.PagingTop.CurrentPageNumber;
                int onPage = (ConfigurationManager.AppSettings["RowsOnPage"] != null) ? Convert.ToInt32(ConfigurationManager.AppSettings["RowsOnPage"]) : 11;

                var searchParameters = (Session["SearchParameters"] != null) ? Session["SearchParameters"] as SearchParameters : null;
                var ConsolidatedAccounts = client.GetConsolidatedAccountList2(UserPrincipal.Current.UserId, numPage, onPage, searchParameters);

                return ConsolidatedAccounts;
            }
            catch (System.ServiceModel.FaultException<ExceptionDetail> ex)
            {
                string message = client.GetExceptionDetail(ex);
                this.ErrorMessage.Text = message;
                return null;
            }
            catch (System.Exception exp)
            {
                this.ErrorMessage.Text = exp.Message;
                return null;
            }
        }


        protected void ConsolidatedAccounts_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                int id = Convert.ToInt32(ConsolidatedAccounts.SelectedRow.Cells[0].Text);
                Response.Redirect(string.Format("~/WebForms/ConsolidatedAccount.aspx?caid={0}", id));
            }
            catch (Exception ex)
            { }
        }


        /// <summary>
        /// Событие заполнения строки грида данными
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ConsolidatedAccounts_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes["onmouseover"] = "this.style.backgroundColor='#6b8cbe'";
                e.Row.Attributes["onmouseout"] = "this.style.backgroundColor='#FFFFFF'";
                e.Row.Attributes["style"] = "cursor:hand;background-color: #FFFFFF";

                var grid = sender as GridView;
                string postback = Page.ClientScript.GetPostBackEventReference(grid, string.Format("Select${0}", e.Row.RowIndex));
                e.Row.Attributes.Add("onclick", postback.ToString());
            }
        }


        /// <summary>
        /// Событие нажатия на LinkButton для редактирования Заказа
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ConsolidatedAccountEditButton_Click(object sender, EventArgs e)
        {
            try
            {
                int Id = Convert.ToInt32((sender as LinkButton).CommandArgument);
                Response.Redirect(string.Format("~/WebForms/ConsolidatedAccount.aspx?caid={0}", Id));
            }
            catch (Exception ex)
            { }
        }


        private void BindAndFillFiltersPaging()
        {
            SearchParameters searchParameters = null;
            searchParameters = GetSearchParameters();
            BindPaging(searchParameters);
            Bind();
            FillFiltersFields();
        }

    }


    //public partial class ConsolidatedAccountList : System.Web.UI.UserControl
    //{
    //    protected System.Drawing.Color ActivePageColor = System.Drawing.Color.FromName("#6b8cbe");


    //    /// <summary>
    //    /// Свойство, указывающее на наличие фильтра
    //    /// </summary>
    //    protected bool IsFiltered
    //    {
    //        get { return Session["SearchParameters"] != null && Session["SearchParameters"] is SearchParameters; }
    //    }


    //    protected void Page_Load(object sender, EventArgs e)
    //    {
    //        if (!IsPostBack)
    //            Session["accsNumPage"] = null;
            
    //        SearchParameters searchParameters = null;

    //        if (IsPostBack)
    //        {
    //            // Заполняется объект SearchParameters
    //            searchParameters = GetSearchParameters();

    //            // SearchParameters добавляется в сессию
    //            Session["SearchParameters"] = searchParameters;
    //        }

    //        BindPaging(searchParameters);
    //        if (!IsPostBack)
    //            Bind();
    //        FillFiltersFields();
    //    }

    //    private void Bind()
    //    {
    //        var ConsolidatedAccounts = GetConsolidatedAccounts();

    //        if (ConsolidatedAccounts != null)
    //            this.ConsolidatedAccounts.DataSource = ConsolidatedAccounts.ToList();

    //        this.ConsolidatedAccounts.DataBind();
    //    }

    //    private void BindPaging(SearchParameters searchParameters)
    //    {
    //        int? numRows = new ExpendBillsClient().GetConsolidatedAccountListCount(UserPrincipal.Current.UserId, searchParameters);
    //        if (numRows != null)
    //        {
    //            this.ConsolidatedAccountListPaging.Visible = true;
    //            this.ConsolidatedAccountListPagingTop.Visible = true;
    //            int onPage = (ConfigurationManager.AppSettings["RowsOnPage"] != null) ? Convert.ToInt32(ConfigurationManager.AppSettings["RowsOnPage"]) : 10;
    //            int countPages = (int)Math.Ceiling((double)numRows / (double)onPage);
    //            if (countPages > 1)
    //            {
    //                int[] pages = new int[countPages];
    //                List<int> pagesList = new List<int>();
    //                for (int i = 0; i < countPages; i++)
    //                    pagesList.Add(i + 1);//pages[i] = i + 1;

    //                this.ConsolidatedAccountListPaging.DataSource = pagesList; // pages;
    //                this.ConsolidatedAccountListPaging.DataBind();
    //                this.ConsolidatedAccountListPagingTop.DataSource = pagesList; // pages;
    //                this.ConsolidatedAccountListPagingTop.DataBind();

    //                if (!IsPostBack)
    //                {
    //                    Session["accsNumPage"] = null;
    //                }
    //                FillListPaging(ConsolidatedAccountListPagingTop);
    //                FillListPaging(ConsolidatedAccountListPaging);
    //            }
    //            else
    //            {
    //                this.ConsolidatedAccountListPaging.Visible = false;
    //                this.ConsolidatedAccountListPagingTop.Visible = false;
    //            }
    //        }
    //        else
    //        {
    //            this.ConsolidatedAccountListPaging.Visible = false;
    //            this.ConsolidatedAccountListPagingTop.Visible = false;
    //        }
    //    }


    //    /// <summary>
    //    /// Событие нажатия на LinkButton для перехода на другую страницу списка Расходных накладных`
    //    /// </summary>
    //    /// <param name="sender"></param>
    //    /// <param name="e"></param>
    //    protected void GotoPageButton_Click(object sender, EventArgs e)
    //    {
    //        try
    //        {
    //            int pageNum = Convert.ToInt32((sender as LinkButton).CommandArgument);
    //            Session["accsNumPage"] = pageNum;

    //            // Подсвечивание текущего Item'а
    //            FillListPaging(ConsolidatedAccountListPagingTop);
    //            FillListPaging(ConsolidatedAccountListPaging);

    //            Bind();

    //            // Заполняются поля ввода для фильтров из Session
    //            FillFiltersFields();
    //        }
    //        catch (Exception ex)
    //        { }
    //    }


    //    private void FillListPaging(DataList paging)
    //    {
    //        if (paging != null && paging.Items != null)
    //        {
    //            foreach (DataListItem item in paging.Items)
    //                item.BackColor = System.Drawing.Color.Transparent;

    //            if (Session["accsNumPage"] == null)
    //                paging.Items[0].BackColor = ActivePageColor;

    //            var pageNum = Session["accsNumPage"];
    //            foreach (DataListItem item in paging.Items)
    //            {
    //                if (pageNum != null && (item.ItemIndex == Convert.ToInt32(pageNum) - 1))
    //                {
    //                    item.BackColor = ActivePageColor;
    //                    break;
    //                }
    //            }
    //        }
    //    }


    //    protected void AccountList_Filtr_click(object sender, EventArgs e)
    //    {
    //        //// Заполняются поля ввода для фильтров из Session
    //        //FillFiltersFields();
    //        //SearchParameters searchParameters = null;
    //        //searchParameters = GetSearchParameters();

    //        //var consolidatedAccounts = GetConsolidatedAccounts();
    //        //if (consolidatedAccounts != null && consolidatedAccounts.Count > 0)
    //        //{
    //        //    //this.Orders.DataSource = orders.Where(o => o.Id == Convert.ToInt32(this.search_id.Text));

    //        //    // Номер счета
    //        //    if (searchParameters.AccountNumber != null)
    //        //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => !string.IsNullOrEmpty(c.ConsolidatedAccount.Number) && c.ConsolidatedAccount.Number.ToLower().Contains(searchParameters.AccountNumber.ToLower()));

    //        //    // Дата создания
    //        //    if (searchParameters.AccountCreatedDate != null)
    //        //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => c.ConsolidatedAccount.CreatedDate.Date.ToShortDateString().Contains(searchParameters.AccountCreatedDate.Value.Date.ToShortDateString()));
                
    //        //    // Начало периода
    //        //    if (searchParameters.AccountPeriodDateStart != null)
    //        //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => c.ConsolidatedAccount.PeriodDateStart.Date.ToShortDateString().Contains(searchParameters.AccountPeriodDateStart.Value.Date.ToShortDateString()));

    //        //    // Окончание периода
    //        //    if (searchParameters.AccountPeriodDateEnd != null)
    //        //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => c.ConsolidatedAccount.PeriodDateEnd.Date.ToShortDateString().Contains(searchParameters.AccountPeriodDateEnd.Value.Date.ToShortDateString()));

    //        //    // Название Юр.лица
    //        //    if (searchParameters.JuridicalPerson != null)
    //        //        this.ConsolidatedAccounts.DataSource = consolidatedAccounts.Where(c => c.JuridicalPerson.Name.ToLower().Contains(searchParameters.JuridicalPerson.ToLower()));


    //        //    this.ConsolidatedAccounts.DataBind();

    //        //}
    //        Session["accsNumPage"] = null;
    //        BindAndFillFiltersPaging();
    //    }


    //    /// <summary>
    //    /// Заполняются поля ввода для фильтров из Session
    //    /// </summary>
    //    private void FillFiltersFields()
    //    {
    //        var searchParameters = Session["SearchParameters"] as SearchParameters;
    //        if (searchParameters != null)
    //        {
    //            #region Заполняются поля ввода фильтров

    //            var HNumber = this.ConsolidatedAccounts.HeaderRow.FindControl("HNumber") as TextBox;
    //            var HCreatedDate = this.ConsolidatedAccounts.HeaderRow.FindControl("HCreatedDate") as jQuery.JQueryDatepicker;
    //            var HPeriodDateStart = this.ConsolidatedAccounts.HeaderRow.FindControl("HPeriodDateStart") as jQuery.JQueryDatepicker;
    //            var HPeriodDateEnd = this.ConsolidatedAccounts.HeaderRow.FindControl("HPeriodDateEnd") as jQuery.JQueryDatepicker;
    //            var HJuridicalPersonName = this.ConsolidatedAccounts.HeaderRow.FindControl("HJuridicalPersonName") as TextBox;

    //            if (HNumber != null)
    //                HNumber.Text = searchParameters.AccountNumber;

    //            if (HCreatedDate != null)
    //                HCreatedDate.SelectedDate = searchParameters.AccountCreatedDate;

    //            if (HPeriodDateStart != null)
    //                HPeriodDateStart.SelectedDate = searchParameters.AccountPeriodDateStart;

    //            if (HPeriodDateEnd != null)
    //                HPeriodDateEnd.SelectedDate = searchParameters.AccountPeriodDateEnd;

    //            if (HJuridicalPersonName != null)
    //                HJuridicalPersonName.Text = searchParameters.JuridicalPerson;

    //            #endregion Заполняются поля ввода фильтров
    //        }
    //    }


    //    /// <summary>
    //    /// Возвращается объект SearchParameters формирующийся из полей ввода фильтров
    //    /// </summary>
    //    /// <returns></returns>
    //    private SearchParameters GetSearchParameters()
    //    {
    //        // Создаем экземпляр SearchParameters
    //        SearchParameters searchParameters = new SearchParameters();

    //        #region Заполняется объект SearchParameters

    //        var HNumber = this.ConsolidatedAccounts.HeaderRow.FindControl("HNumber") as TextBox;
    //        var HCreatedDate = this.ConsolidatedAccounts.HeaderRow.FindControl("HCreatedDate") as jQuery.JQueryDatepicker;
    //        var HPeriodDateStart = this.ConsolidatedAccounts.HeaderRow.FindControl("HPeriodDateStart") as jQuery.JQueryDatepicker;
    //        var HPeriodDateEnd = this.ConsolidatedAccounts.HeaderRow.FindControl("HPeriodDateEnd") as jQuery.JQueryDatepicker;
    //        var HJuridicalPersonName = this.ConsolidatedAccounts.HeaderRow.FindControl("HJuridicalPersonName") as TextBox;

    //        if (HNumber != null && !string.IsNullOrEmpty(HNumber.Text))
    //            searchParameters.AccountNumber = HNumber.Text;

    //        if (HCreatedDate != null && HCreatedDate.SelectedDate.HasValue)
    //            searchParameters.AccountCreatedDate = HCreatedDate.SelectedDate.Value;

    //        if (HPeriodDateStart != null && HPeriodDateStart.SelectedDate.HasValue)
    //            searchParameters.AccountPeriodDateStart = HPeriodDateStart.SelectedDate.Value;

    //        if (HPeriodDateEnd != null && HPeriodDateEnd.SelectedDate.HasValue)
    //            searchParameters.AccountPeriodDateEnd = HPeriodDateEnd.SelectedDate.Value;

    //        if (HJuridicalPersonName != null && !string.IsNullOrEmpty(HJuridicalPersonName.Text))
    //            searchParameters.JuridicalPerson = HJuridicalPersonName.Text;

    //        // Если все поля с фильтрами пустые, то объект с параметрами приравнивается NULL
    //        if ((HNumber == null || string.IsNullOrEmpty(HNumber.Text)) &&
    //            (HCreatedDate == null || !HCreatedDate.SelectedDate.HasValue) &&
    //            (HPeriodDateStart == null || !HPeriodDateStart.SelectedDate.HasValue) &&
    //            (HPeriodDateEnd == null || !HPeriodDateEnd.SelectedDate.HasValue) &&
    //            (HJuridicalPersonName == null || string.IsNullOrEmpty(HJuridicalPersonName.Text))
    //        )
    //        {
    //            searchParameters = null;// searchParameters = (Session["SearchParameters"] != null) ? Session["SearchParameters"] as SearchParameters : null;
    //        }

    //        #endregion Заполняется объект SearchParameters
    //        { }
    //        return searchParameters;
    //    }


    //    protected void AccountList_Clear_Filtr(object sender, EventArgs e)
    //    {
    //        Session["SearchParameters"] = null;
    //        Session["accsNumPage"] = null;
    //        Response.Redirect("~/WebForms/ConsolidatedAccountList.aspx");
    //    }


    //    private List<ConsolidatedAccountEntity> GetConsolidatedAccounts()
    //    {
    //        var client = new ExpendBillsClient();
    //        try
    //        {
    //            int numPage = (Session["accsNumPage"] != null) ? Convert.ToInt32(Session["accsNumPage"]) : 1;
    //            int onPage = (ConfigurationManager.AppSettings["RowsOnPage"] != null) ? Convert.ToInt32(ConfigurationManager.AppSettings["RowsOnPage"]) : 11;

    //            var searchParameters = (Session["SearchParameters"] != null) ? Session["SearchParameters"] as SearchParameters : null;
    //            var ConsolidatedAccounts = client.GetConsolidatedAccountList(UserPrincipal.Current.UserId, numPage, onPage, searchParameters);

    //            return ConsolidatedAccounts;
    //        }
    //        catch (System.ServiceModel.FaultException<ExceptionDetail> ex)
    //        {
    //            string message = client.GetExceptionDetail(ex);
    //            this.ErrorMessage.Text = message;
    //            return null;
    //        }
    //        catch (System.Exception exp)
    //        {
    //            this.ErrorMessage.Text = exp.Message;
    //            return null;
    //        }
    //    }


    //    protected void ConsolidatedAccounts_SelectedIndexChanged(object sender, EventArgs e)
    //    {
    //        try
    //        {
    //            int id = Convert.ToInt32(ConsolidatedAccounts.SelectedRow.Cells[0].Text);
    //            Response.Redirect(string.Format("~/WebForms/ConsolidatedAccount.aspx?caid={0}", id));
    //        }
    //        catch (Exception ex)
    //        { }
    //    }


    //    /// <summary>
    //    /// Событие заполнения строки грида данными
    //    /// </summary>
    //    /// <param name="sender"></param>
    //    /// <param name="e"></param>
    //    protected void ConsolidatedAccounts_RowDataBound(object sender, GridViewRowEventArgs e)
    //    {
    //        if (e.Row.RowType == DataControlRowType.DataRow)
    //        {
    //            if (e.Row.RowType == DataControlRowType.DataRow)
    //            {
    //                e.Row.Attributes["onmouseover"] = "this.style.backgroundColor='#6b8cbe'";
    //                e.Row.Attributes["onmouseout"] = "this.style.backgroundColor='#FFFFFF'";
    //                e.Row.Attributes["style"] = "cursor:hand;";

    //                var grid = sender as GridView;
    //                string postback = Page.ClientScript.GetPostBackEventReference(grid, string.Format("Select${0}", e.Row.RowIndex));
    //                e.Row.Attributes.Add("onclick", postback.ToString());
    //            }
    //        }
    //    }


    //    /// <summary>
    //    /// Событие нажатия на LinkButton для редактирования Заказа
    //    /// </summary>
    //    /// <param name="sender"></param>
    //    /// <param name="e"></param>
    //    protected void ConsolidatedAccountEditButton_Click(object sender, EventArgs e)
    //    {
    //        try
    //        {
    //            int Id = Convert.ToInt32((sender as LinkButton).CommandArgument);
    //            Response.Redirect(string.Format("~/WebForms/ConsolidatedAccount.aspx?caid={0}", Id));
    //        }
    //        catch (Exception ex)
    //        { }
    //    }


    //    private void BindAndFillFiltersPaging()
    //    {
    //        SearchParameters searchParameters = null;
    //        searchParameters = GetSearchParameters();
    //        BindPaging(searchParameters);
    //        Bind();
    //        FillFiltersFields();
    //    }

    //}
}